void main() {
  // 1. 同名构造函数创建对象
  Person man = Person('张三丰', 18, '男');
  man.intro();

  // 2. 命名构造函数创建对象
  Person woman = Person.init('王大龙', 18);
  woman.intro();

  Person child = Person.create('王小龙');
  child.intro();
}

class Person {
  // 属性
  String? name;
  int? age;
  String? gender;

  // 同名构造函数(主)
  // Person(String name, int age, String gender) {
  //   print('这是主构造函数');
  //   this.name = name;
  //   this.age = age;
  //   this.gender = gender;
  // }

  // 简写
  Person(this.name, this.age, this.gender);

  // 命名构造函数(次)
  // Person.init(String name, int age) {
  //   print('这是命名构造函数');
  //   this.name = name;
  //   this.age = age;
  //   this.gender = '男';
  // }

  // 简写
  Person.init(this.name, this.age) : this.gender = '男';

  // 命名构造函数(次)
  // Person.create(String name) {
  //   print('这是命名构造函数');
  //   this.name = name;
  //   this.age = 28;
  //   this.gender = '女';
  // }

  // 简写
  Person.create(this.name)
      : this.age = 28,
        this.gender = '女';

  // 方法
  intro() {
    print('我的名字是$name,年龄是$age,性别是$gender');
  }
}
